\section{/usr/local/home/accts/cs613010/mpimt/mpimt/src/mpi.h File Reference}
\label{mpi_8h}\index{/usr/local/home/accts/cs613010/mpimt/mpimt/src/mpi.h@{/usr/local/home/accts/cs613010/mpimt/mpimt/src/mpi.h}}
File which defines all of the MPI functions, constants and datatypes. 

\subsection*{Defines}
\begin{CompactItemize}
\item 
\#define {\bf MPI\_\-SUCCESS}~0\label{mpi_8h_a0}

\item 
\#define {\bf MPI\_\-ERR\_\-BUFFER}~1\label{mpi_8h_a1}

\item 
\#define {\bf MPI\_\-ERR\_\-COUNT}~2\label{mpi_8h_a2}

\item 
\#define {\bf MPI\_\-ERR\_\-TYPE}~3\label{mpi_8h_a3}

\item 
\#define {\bf MPI\_\-ERR\_\-TAG}~4\label{mpi_8h_a4}

\item 
\#define {\bf MPI\_\-ERR\_\-COMM}~5\label{mpi_8h_a5}

\item 
\#define {\bf MPI\_\-ERR\_\-RANK}~6\label{mpi_8h_a6}

\item 
\#define {\bf MPI\_\-ERR\_\-REQUEST}~7\label{mpi_8h_a7}

\item 
\#define {\bf MPI\_\-ERR\_\-ROOT}~8\label{mpi_8h_a8}

\item 
\#define {\bf MPI\_\-ERR\_\-GROUP}~9\label{mpi_8h_a9}

\item 
\#define {\bf MPI\_\-ERR\_\-OP}~10\label{mpi_8h_a10}

\item 
\#define {\bf MPI\_\-ERR\_\-TOPOLOGY}~11\label{mpi_8h_a11}

\item 
\#define {\bf MPI\_\-ERR\_\-DIMS}~12\label{mpi_8h_a12}

\item 
\#define {\bf MPI\_\-ERR\_\-ARG}~13\label{mpi_8h_a13}

\item 
\#define {\bf MPI\_\-ERR\_\-UNKNOWN}~14\label{mpi_8h_a14}

\item 
\#define {\bf MPI\_\-ERR\_\-TRUNCATE}~15\label{mpi_8h_a15}

\item 
\#define {\bf MPI\_\-ERR\_\-OTHER}~16\label{mpi_8h_a16}

\item 
\#define {\bf MPI\_\-ERR\_\-INTERN}~17\label{mpi_8h_a17}

\item 
\#define {\bf MPI\_\-PENDING}~18\label{mpi_8h_a18}

\item 
\#define {\bf MPI\_\-ERR\_\-IN\_\-STATUS}~19\label{mpi_8h_a19}

\item 
\#define {\bf MPI\_\-ERR\_\-LASTCODE}~20\label{mpi_8h_a20}

\item 
\#define {\bf MPI\_\-BOTTOM}~(void $\ast$)0\label{mpi_8h_a21}

\item 
\#define {\bf MPI\_\-PROC\_\-NULL}~(-1)\label{mpi_8h_a22}

\item 
\#define {\bf MPI\_\-ANY\_\-SOURCE}~(-2)\label{mpi_8h_a23}

\item 
\#define {\bf MPI\_\-ROOT}~(-3)\label{mpi_8h_a24}

\item 
\#define {\bf MPI\_\-ANY\_\-TAG}~(-1)\label{mpi_8h_a25}

\item 
\#define {\bf MPI\_\-UNDEFINED}~(-32766)\label{mpi_8h_a26}

\item 
\#define {\bf MPI\_\-BSEND\_\-OVERHEAD}~512\label{mpi_8h_a27}

\item 
\#define {\bf MPI\_\-KEYVAL\_\-INVALID}~0\label{mpi_8h_a28}

\item 
\#define {\bf MPI\_\-STATUS\_\-IGNORE}~(MPI\_\-Status $\ast$)1\label{mpi_8h_a29}

\item 
\#define {\bf MPI\_\-ERRORS\_\-ARE\_\-FATAL}~0\label{mpi_8h_a30}

\item 
\#define {\bf MPI\_\-ERRORS\_\-RETURN}~1\label{mpi_8h_a31}

\item 
\#define {\bf MPI\_\-MAX\_\-PROCESSOR\_\-NAME}~32\label{mpi_8h_a32}

\item 
\#define {\bf MPI\_\-MAX\_\-ERROR\_\-STRING}~50\label{mpi_8h_a33}

\item 
\#define {\bf MPI\_\-CHAR}~((MPI\_\-Datatype) 1)\label{mpi_8h_a34}

\item 
\#define {\bf MPI\_\-SHORT}~((MPI\_\-Datatype) 2)\label{mpi_8h_a35}

\item 
\#define {\bf MPI\_\-INT}~((MPI\_\-Datatype) 3)\label{mpi_8h_a36}

\item 
\#define {\bf MPI\_\-LONG}~((MPI\_\-Datatype) 4)\label{mpi_8h_a37}

\item 
\#define {\bf MPI\_\-UNSIGNED\_\-CHAR}~((MPI\_\-Datatype) 5)\label{mpi_8h_a38}

\item 
\#define {\bf MPI\_\-UNSIGNED\_\-SHORT}~((MPI\_\-Datatype) 6)\label{mpi_8h_a39}

\item 
\#define {\bf MPI\_\-UNSIGNED}~((MPI\_\-Datatype) 7)\label{mpi_8h_a40}

\item 
\#define {\bf MPI\_\-UNSIGNED\_\-LONG}~((MPI\_\-Datatype) 8)\label{mpi_8h_a41}

\item 
\#define {\bf MPI\_\-FLOAT}~((MPI\_\-Datatype) 9)\label{mpi_8h_a42}

\item 
\#define {\bf MPI\_\-DOUBLE}~((MPI\_\-Datatype) 10)\label{mpi_8h_a43}

\item 
\#define {\bf MPI\_\-LONG\_\-DOUBLE}~((MPI\_\-Datatype) 11)\label{mpi_8h_a44}

\item 
\#define {\bf MPI\_\-BYTE}~((MPI\_\-Datatype) 12)\label{mpi_8h_a45}

\item 
\#define {\bf MPI\_\-PACKED}~((MPI\_\-Datatype) 13)\label{mpi_8h_a46}

\item 
\#define {\bf MPI\_\-LONG\_\-LONG\_\-INT}~((MPI\_\-Datatype) 14)\label{mpi_8h_a47}

\item 
\#define {\bf MPI\_\-UB}~((MPI\_\-Datatype) 15)\label{mpi_8h_a48}

\item 
\#define {\bf MPI\_\-LB}~((MPI\_\-Datatype) 16)\label{mpi_8h_a49}

\item 
\#define {\bf MPI\_\-FLOAT\_\-INT}~((MPI\_\-Datatype) 17)\label{mpi_8h_a50}

\item 
\#define {\bf MPI\_\-DOUBLE\_\-INT}~((MPI\_\-Datatype) 18)\label{mpi_8h_a51}

\item 
\#define {\bf MPI\_\-LONG\_\-INT}~((MPI\_\-Datatype) 19)\label{mpi_8h_a52}

\item 
\#define {\bf MPI\_\-2INT}~((MPI\_\-Datatype) 20)\label{mpi_8h_a53}

\item 
\#define {\bf MPI\_\-SHORT\_\-INT}~((MPI\_\-Datatype) 21)\label{mpi_8h_a54}

\item 
\#define {\bf MPI\_\-LONG\_\-DOUBLE\_\-INT}~((MPI\_\-Datatype) 22)\label{mpi_8h_a55}

\item 
\#define {\bf MPI\_\-COMM\_\-WORLD}~((MPI\_\-Comm) 0)\label{mpi_8h_a56}

\item 
\#define {\bf MPI\_\-COMM\_\-SELF}~((MPI\_\-Comm) 1)\label{mpi_8h_a57}

\item 
\#define {\bf MPI\_\-IDENT}~0\label{mpi_8h_a58}

\item 
\#define {\bf MPI\_\-CONGRUENT}~1\label{mpi_8h_a59}

\item 
\#define {\bf MPI\_\-SIMILAR}~2\label{mpi_8h_a60}

\item 
\#define {\bf MPI\_\-UNEQUAL}~3\label{mpi_8h_a61}

\item 
\#define {\bf MPI\_\-TAG\_\-UB}~1\label{mpi_8h_a62}

\item 
\#define {\bf MPI\_\-IO}~2\label{mpi_8h_a63}

\item 
\#define {\bf MPI\_\-HOST}~3\label{mpi_8h_a64}

\item 
\#define {\bf MPI\_\-WTIME\_\-IS\_\-GLOBAL}~4\label{mpi_8h_a65}

\item 
\#define {\bf MPI\_\-MAX}~((MPI\_\-Op) 0)\label{mpi_8h_a66}

\item 
\#define {\bf MPI\_\-MIN}~((MPI\_\-Op) 0)\label{mpi_8h_a67}

\item 
\#define {\bf MPI\_\-SUM}~((MPI\_\-Op) 0)\label{mpi_8h_a68}

\item 
\#define {\bf MPI\_\-PROD}~((MPI\_\-Op) 0)\label{mpi_8h_a69}

\item 
\#define {\bf MPI\_\-MAXLOC}~((MPI\_\-Op) 0)\label{mpi_8h_a70}

\item 
\#define {\bf MPI\_\-MINLOC}~((MPI\_\-Op) 0)\label{mpi_8h_a71}

\item 
\#define {\bf MPI\_\-BAND}~((MPI\_\-Op) 0)\label{mpi_8h_a72}

\item 
\#define {\bf MPI\_\-BOR}~((MPI\_\-Op) 0)\label{mpi_8h_a73}

\item 
\#define {\bf MPI\_\-BXOR}~((MPI\_\-Op) 0)\label{mpi_8h_a74}

\item 
\#define {\bf MPI\_\-LAND}~((MPI\_\-Op) 0)\label{mpi_8h_a75}

\item 
\#define {\bf MPI\_\-LOR}~((MPI\_\-Op) 0)\label{mpi_8h_a76}

\item 
\#define {\bf MPI\_\-LXOR}~((MPI\_\-Op) 0)\label{mpi_8h_a77}

\item 
\#define {\bf MPI\_\-GROUP\_\-NULL}~((MPI\_\-Group) -1)\label{mpi_8h_a78}

\item 
\#define {\bf MPI\_\-COMM\_\-NULL}~((MPI\_\-Comm) -1)\label{mpi_8h_a79}

\item 
\#define {\bf MPI\_\-DATATYPE\_\-NULL}~((MPI\_\-Datatype) -1)\label{mpi_8h_a80}

\item 
\#define {\bf MPI\_\-REQUEST\_\-NULL}~((MPI\_\-Request) -1)\label{mpi_8h_a81}

\item 
\#define {\bf MPI\_\-OP\_\-NULL}~((MPI\_\-Op) -1)\label{mpi_8h_a82}

\item 
\#define {\bf MPI\_\-ERRHANDLER\_\-NULL}~((MPI\_\-Errhandler) -1)\label{mpi_8h_a83}

\item 
\#define {\bf MPI\_\-GROUP\_\-EMPTY}~((MPI\_\-Group) 1)\label{mpi_8h_a84}

\item 
\#define {\bf MPI\_\-GRAPH}~1\label{mpi_8h_a85}

\item 
\#define {\bf MPI\_\-CART}~2\label{mpi_8h_a86}

\end{CompactItemize}
\subsection*{Typedefs}
\begin{CompactItemize}
\item 
typedef int {\bf MPI\_\-Aint}\label{mpi_8h_a87}

\item 
typedef int {\bf MPI\_\-Group}\label{mpi_8h_a88}

\item 
typedef int {\bf MPI\_\-Comm}\label{mpi_8h_a89}

\item 
typedef int {\bf MPI\_\-Datatype}\label{mpi_8h_a90}

\item 
typedef int {\bf MPI\_\-Request}\label{mpi_8h_a91}

\item 
typedef int {\bf MPI\_\-Op}\label{mpi_8h_a92}

\item 
typedef int {\bf MPI\_\-Errhandler}\label{mpi_8h_a93}

\item 
typedef int {\bf MPI\_\-Copy\_\-function} (MPI\_\-Comm oldcomm, int keyval, void $\ast$extra\_\-state, void $\ast$attribute\_\-val\_\-in, void $\ast$attribute\_\-val\_\-out, int $\ast$flag)\label{mpi_8h_a94}

\item 
typedef int {\bf MPI\_\-Delete\_\-function} (MPI\_\-Comm comm, int keyval, void $\ast$attribute\_\-val, void $\ast$extra\_\-state)\label{mpi_8h_a95}

\item 
typedef void {\bf MPI\_\-Handler\_\-function} (MPI\_\-Comm $\ast$, int $\ast$,...)\label{mpi_8h_a96}

\item 
typedef void {\bf MPI\_\-User\_\-function} (void $\ast$invec, void $\ast$inoutvec, int $\ast$len, MPI\_\-Datatype $\ast$datatype)\label{mpi_8h_a97}

\end{CompactItemize}
\subsection*{Functions}
\begin{CompactItemize}
\item 
int {\bf MPI\_\-Send} (void $\ast$buf, int count, MPI\_\-Datatype datatype, int dest, int tag, MPI\_\-Comm comm)\label{mpi_8h_a98}

\item 
int {\bf MPI\_\-Recv} (void $\ast$buf, int count, MPI\_\-Datatype datatype, int source, int tag, MPI\_\-Comm comm, MPI\_\-Status $\ast$status)\label{mpi_8h_a99}

\item 
int {\bf MPI\_\-Get\_\-count} (MPI\_\-Status $\ast$status, MPI\_\-Datatype datatype, int $\ast$count)\label{mpi_8h_a100}

\item 
int {\bf MPI\_\-Bsend} (void $\ast$buf, int count, MPI\_\-Datatype datatype, int dest, int tag, MPI\_\-Comm comm)\label{mpi_8h_a101}

\item 
int {\bf MPI\_\-Ssend} (void $\ast$buf, int count, MPI\_\-Datatype datatype, int dest, int tag, MPI\_\-Comm comm)\label{mpi_8h_a102}

\item 
int {\bf MPI\_\-Rsend} (void $\ast$buf, int count, MPI\_\-Datatype datatype, int dest, int tag, MPI\_\-Comm comm)\label{mpi_8h_a103}

\item 
int {\bf MPI\_\-Buffer\_\-attach} (void $\ast$buffer, int size)\label{mpi_8h_a104}

\item 
int {\bf MPI\_\-Buffer\_\-detach} (void $\ast$buffer, int $\ast$size)\label{mpi_8h_a105}

\item 
int {\bf MPI\_\-Isend} (void $\ast$buf, int count, MPI\_\-Datatype datatype, int dest, int tag, MPI\_\-Comm comm, MPI\_\-Request $\ast$request)\label{mpi_8h_a106}

\item 
int {\bf MPI\_\-Ibsend} (void $\ast$buf, int count, MPI\_\-Datatype datatype, int dest, int tag, MPI\_\-Comm comm, MPI\_\-Request $\ast$request)\label{mpi_8h_a107}

\item 
int {\bf MPI\_\-Issend} (void $\ast$buf, int count, MPI\_\-Datatype datatype, int dest, int tag, MPI\_\-Comm comm, MPI\_\-Request $\ast$request)\label{mpi_8h_a108}

\item 
int {\bf MPI\_\-Irsend} (void $\ast$buf, int count, MPI\_\-Datatype datatype, int dest, int tag, MPI\_\-Comm comm, MPI\_\-Request $\ast$request)\label{mpi_8h_a109}

\item 
int {\bf MPI\_\-Irecv} (void $\ast$buf, int count, MPI\_\-Datatype datatype, int dest, int tag, MPI\_\-Comm comm, MPI\_\-Request $\ast$request)\label{mpi_8h_a110}

\item 
int {\bf MPI\_\-Wait} (MPI\_\-Request $\ast$request, MPI\_\-Status $\ast$status)\label{mpi_8h_a111}

\item 
int {\bf MPI\_\-Test} (MPI\_\-Request $\ast$request, int $\ast$flag, MPI\_\-Status $\ast$status)\label{mpi_8h_a112}

\item 
int {\bf MPI\_\-Request\_\-free} (MPI\_\-Request $\ast$request)\label{mpi_8h_a113}

\item 
int {\bf MPI\_\-Waitany} (int count, MPI\_\-Request $\ast$array\_\-of\_\-requests, int $\ast$index, MPI\_\-Status $\ast$status)\label{mpi_8h_a114}

\item 
int {\bf MPI\_\-Testany} (int count, MPI\_\-Request $\ast$array\_\-of\_\-requests, int $\ast$index, int $\ast$flag, MPI\_\-Status $\ast$status)\label{mpi_8h_a115}

\item 
int {\bf MPI\_\-Waitall} (int count, MPI\_\-Request $\ast$array\_\-of\_\-requests, MPI\_\-Status $\ast$array\_\-of\_\-statuses)\label{mpi_8h_a116}

\item 
int {\bf MPI\_\-Testall} (int count, MPI\_\-Request $\ast$array\_\-of\_\-requests, int $\ast$flag, MPI\_\-Status $\ast$array\_\-of\_\-statuses)\label{mpi_8h_a117}

\item 
int {\bf MPI\_\-Waitsome} (int incount, MPI\_\-Request $\ast$array\_\-of\_\-requests, int $\ast$outcount, int $\ast$array\_\-of\_\-indices, MPI\_\-Status $\ast$array\_\-of\_\-statuses)\label{mpi_8h_a118}

\item 
int {\bf MPI\_\-Testsome} (int incount, MPI\_\-Request $\ast$array\_\-of\_\-requests, int $\ast$outcount, int $\ast$array\_\-of\_\-indices, MPI\_\-Status $\ast$array\_\-of\_\-statuses)\label{mpi_8h_a119}

\item 
int {\bf MPI\_\-Iprobe} (int source, int tag, MPI\_\-Comm comm, int $\ast$flag, MPI\_\-Status $\ast$status)\label{mpi_8h_a120}

\item 
int {\bf MPI\_\-Probe} (int source, int tag, MPI\_\-Comm comm, MPI\_\-Status $\ast$status)\label{mpi_8h_a121}

\item 
int {\bf MPI\_\-Cancel} (MPI\_\-Request $\ast$request)\label{mpi_8h_a122}

\item 
int {\bf MPI\_\-Test\_\-cancelled} (MPI\_\-Status $\ast$status, int $\ast$flag)\label{mpi_8h_a123}

\item 
int {\bf MPI\_\-Send\_\-init} (void $\ast$buf, int count, MPI\_\-Datatype datatype, int dest, int tag, MPI\_\-Comm comm, MPI\_\-Request $\ast$request)\label{mpi_8h_a124}

\item 
int {\bf MPI\_\-Bsend\_\-init} (void $\ast$buf, int count, MPI\_\-Datatype datatype, int dest, int tag, MPI\_\-Comm comm, MPI\_\-Request $\ast$request)\label{mpi_8h_a125}

\item 
int {\bf MPI\_\-Ssend\_\-init} (void $\ast$buf, int count, MPI\_\-Datatype datatype, int dest, int tag, MPI\_\-Comm comm, MPI\_\-Request $\ast$request)\label{mpi_8h_a126}

\item 
int {\bf MPI\_\-Rsend\_\-init} (void $\ast$buf, int count, MPI\_\-Datatype datatype, int dest, int tag, MPI\_\-Comm comm, MPI\_\-Request $\ast$request)\label{mpi_8h_a127}

\item 
int {\bf MPI\_\-Recv\_\-init} (void $\ast$buf, int count, MPI\_\-Datatype datatype, int source, int tag, MPI\_\-Comm comm, MPI\_\-Request $\ast$request)\label{mpi_8h_a128}

\item 
int {\bf MPI\_\-Start} (MPI\_\-Request $\ast$request)\label{mpi_8h_a129}

\item 
int {\bf MPI\_\-Startall} (int num\_\-requests, MPI\_\-Request $\ast$array\_\-of\_\-requests)\label{mpi_8h_a130}

\item 
int {\bf MPI\_\-Sendrecv} (void $\ast$sendbuf, int sendcount, MPI\_\-Datatype sendtype, int dest, int sendtag, void $\ast$recvbuf, int recvcount, MPI\_\-Datatype recvtype, int source, int recvtag, MPI\_\-Comm comm, MPI\_\-Status $\ast$status)\label{mpi_8h_a131}

\item 
int {\bf MPI\_\-Sendrecv\_\-replace} (void $\ast$buf, int count, MPI\_\-Datatype datatype, int dest, int sendtag, int source, int recvtag, MPI\_\-Comm comm, MPI\_\-Status $\ast$status)\label{mpi_8h_a132}

\item 
int {\bf MPI\_\-Type\_\-contiguous} (int count, MPI\_\-Datatype oldtype, MPI\_\-Datatype $\ast$newtype)\label{mpi_8h_a133}

\item 
int {\bf MPI\_\-Type\_\-vector} (int count, int blocklength, int stride, MPI\_\-Datatype oldtype, MPI\_\-Datatype $\ast$newtype)\label{mpi_8h_a134}

\item 
int {\bf MPI\_\-Type\_\-hvector} (int count, int blocklength, MPI\_\-Aint stride, MPI\_\-Datatype oldtype, MPI\_\-Datatype $\ast$newtype)\label{mpi_8h_a135}

\item 
int {\bf MPI\_\-Type\_\-indexed} (int count, int $\ast$array\_\-of\_\-blocklengths, int $\ast$array\_\-of\_\-displacements, MPI\_\-Datatype oldtype, MPI\_\-Datatype $\ast$newtype)\label{mpi_8h_a136}

\item 
int {\bf MPI\_\-Type\_\-hindexed} (int count, int $\ast$array\_\-of\_\-blocklengths, MPI\_\-Aint $\ast$array\_\-of\_\-displacements, MPI\_\-Datatype oldtype, MPI\_\-Datatype $\ast$newtype)\label{mpi_8h_a137}

\item 
int {\bf MPI\_\-Type\_\-struct} (int count, int $\ast$array\_\-of\_\-blocklengths, MPI\_\-Aint $\ast$array\_\-of\_\-displacements, MPI\_\-Datatype $\ast$array\_\-of\_\-types, MPI\_\-Datatype $\ast$newtype)\label{mpi_8h_a138}

\item 
int {\bf MPI\_\-Address} (void $\ast$location, MPI\_\-Aint $\ast$address)\label{mpi_8h_a139}

\item 
int {\bf MPI\_\-Type\_\-extent} (MPI\_\-Datatype datatype, MPI\_\-Aint $\ast$extent)\label{mpi_8h_a140}

\item 
int {\bf MPI\_\-Type\_\-size} (MPI\_\-Datatype datatype, int $\ast$size)\label{mpi_8h_a141}

\item 
int {\bf MPI\_\-Type\_\-lb} (MPI\_\-Datatype datatype, MPI\_\-Aint $\ast$displacement)\label{mpi_8h_a142}

\item 
int {\bf MPI\_\-Type\_\-ub} (MPI\_\-Datatype datatype, MPI\_\-Aint $\ast$displacement)\label{mpi_8h_a143}

\item 
int {\bf MPI\_\-Type\_\-commit} (MPI\_\-Datatype $\ast$datatype)\label{mpi_8h_a144}

\item 
int {\bf MPI\_\-Type\_\-free} (MPI\_\-Datatype $\ast$datatype)\label{mpi_8h_a145}

\item 
int {\bf MPI\_\-Get\_\-elements} (MPI\_\-Status $\ast$status, MPI\_\-Datatype datatype, int $\ast$count)\label{mpi_8h_a146}

\item 
int {\bf MPI\_\-Pack} (void $\ast$inbuf, int incount, MPI\_\-Datatype datatype, void $\ast$outbuf, int outsize, int $\ast$position, MPI\_\-Comm comm)\label{mpi_8h_a147}

\item 
int {\bf MPI\_\-Unpack} (void $\ast$inbuf, int insize, int $\ast$position, void $\ast$outbuf, int outcount, MPI\_\-Datatype datatype, MPI\_\-Comm comm)\label{mpi_8h_a148}

\item 
int {\bf MPI\_\-Pack\_\-size} (int incount, MPI\_\-Datatype datatype, MPI\_\-Comm comm, int $\ast$size)\label{mpi_8h_a149}

\item 
int {\bf MPI\_\-Barrier} (MPI\_\-Comm comm)\label{mpi_8h_a150}

\item 
int {\bf MPI\_\-Bcast} (void $\ast$buf, int count, MPI\_\-Datatype datatype, int root, MPI\_\-Comm comm)\label{mpi_8h_a151}

\item 
int {\bf MPI\_\-Gather} (void $\ast$sendbuf, int sendcount, MPI\_\-Datatype sendtype, void $\ast$recvbuf, int recvcount, MPI\_\-Datatype recvtype, int root, MPI\_\-Comm comm)\label{mpi_8h_a152}

\item 
int {\bf MPI\_\-Gatherv} (void $\ast$sendbuf, int sendcount, MPI\_\-Datatype sendtype, void $\ast$recvbuf, int $\ast$recvcounts, int $\ast$displs, MPI\_\-Datatype recvtype, int root, MPI\_\-Comm comm)\label{mpi_8h_a153}

\item 
int {\bf MPI\_\-Scatter} (void $\ast$sendbuf, int sendcount, MPI\_\-Datatype sendtype, void $\ast$recvbuf, int recvcount, MPI\_\-Datatype recvtype, int root, MPI\_\-Comm comm)\label{mpi_8h_a154}

\item 
int {\bf MPI\_\-Scatterv} (void $\ast$sendbuf, int $\ast$sendcounts, int $\ast$displs, MPI\_\-Datatype sendtype, void $\ast$recvbuf, int recvcount, MPI\_\-Datatype recvtype, int root, MPI\_\-Comm comm)\label{mpi_8h_a155}

\item 
int {\bf MPI\_\-Allgather} (void $\ast$sendbuf, int sendcount, MPI\_\-Datatype sendtype, void $\ast$recvbuf, int recvcount, MPI\_\-Datatype recvtype, MPI\_\-Comm comm)\label{mpi_8h_a156}

\item 
int {\bf MPI\_\-Allgatherv} (void $\ast$sendbuf, int sendcount, MPI\_\-Datatype sendtype, void $\ast$recvbuf, int $\ast$recvcounts, int $\ast$displs, MPI\_\-Datatype recvtype, MPI\_\-Comm comm)\label{mpi_8h_a157}

\item 
int {\bf MPI\_\-Alltoall} (void $\ast$sendbuf, int sendcount, MPI\_\-Datatype sendtype, void $\ast$recvbuf, int recvcount, MPI\_\-Datatype recvtype, MPI\_\-Comm comm)\label{mpi_8h_a158}

\item 
int {\bf MPI\_\-Alltoallv} (void $\ast$sendbuf, int $\ast$sendcounts, int $\ast$sdispls, MPI\_\-Datatype sendtype, void $\ast$recvbuf, int $\ast$recvcounts, int $\ast$rdispls, MPI\_\-Datatype recvtype, MPI\_\-Comm comm)\label{mpi_8h_a159}

\item 
int {\bf MPI\_\-Reduce} (void $\ast$sendbuf, void $\ast$recvbuf, int count, MPI\_\-Datatype datatype, MPI\_\-Op op, int root, MPI\_\-Comm comm)\label{mpi_8h_a160}

\item 
int {\bf MPI\_\-Op\_\-create} (MPI\_\-User\_\-function $\ast$function, int commute, MPI\_\-Op $\ast$op)\label{mpi_8h_a161}

\item 
int {\bf MPI\_\-Op\_\-free} (MPI\_\-Op $\ast$op)\label{mpi_8h_a162}

\item 
int {\bf MPI\_\-Allreduce} (void $\ast$sendbuf, void $\ast$recvbuf, int count, MPI\_\-Datatype datatype, MPI\_\-Op op, MPI\_\-Comm comm)\label{mpi_8h_a163}

\item 
int {\bf MPI\_\-Reduce\_\-scatter} (void $\ast$sendbuf, void $\ast$recvbuf, int $\ast$recvcounts, MPI\_\-Datatype datatype, MPI\_\-Op op, MPI\_\-Comm comm)\label{mpi_8h_a164}

\item 
int {\bf MPI\_\-Scan} (void $\ast$sendbuf, void $\ast$recvbuf, int count, MPI\_\-Datatype datatype, MPI\_\-Op op, MPI\_\-Comm comm)\label{mpi_8h_a165}

\item 
int {\bf MPI\_\-Group\_\-size} (MPI\_\-Group group, int $\ast$size)
\begin{CompactList}\small\item\em returns the size of a group \item\end{CompactList}\item 
int {\bf MPI\_\-Group\_\-rank} (MPI\_\-Group group, int $\ast$rank)
\begin{CompactList}\small\item\em returns the rank of this process in the given group \item\end{CompactList}\item 
int {\bf MPI\_\-Group\_\-translate\_\-ranks} (MPI\_\-Group group1, int n, int $\ast$ranks1, MPI\_\-Group group2, int $\ast$ranks2)
\begin{CompactList}\small\item\em Translates the ranks of processes in one group to those in another group. \item\end{CompactList}\item 
int {\bf MPI\_\-Group\_\-compare} (MPI\_\-Group group1, MPI\_\-Group group2, int $\ast$result)
\begin{CompactList}\small\item\em compare two groups \item\end{CompactList}\item 
int {\bf MPI\_\-Comm\_\-group} (MPI\_\-Comm comm, MPI\_\-Group $\ast$group)
\begin{CompactList}\small\item\em Accesses the group associated with given communicator. \item\end{CompactList}\item 
int {\bf MPI\_\-Group\_\-union} (MPI\_\-Group group1, MPI\_\-Group group2, MPI\_\-Group $\ast$newgroup)
\begin{CompactList}\small\item\em Produces a group by combining two groups. \item\end{CompactList}\item 
int {\bf MPI\_\-Group\_\-intersection} (MPI\_\-Group group1, MPI\_\-Group group2, MPI\_\-Group $\ast$newgroup)
\begin{CompactList}\small\item\em Produces a group as the intersection of two existing groups. \item\end{CompactList}\item 
int {\bf MPI\_\-Group\_\-difference} (MPI\_\-Group group1, MPI\_\-Group group2, MPI\_\-Group $\ast$newgroup)
\begin{CompactList}\small\item\em makes a group from the difference of two groups \item\end{CompactList}\item 
int {\bf MPI\_\-Group\_\-incl} (MPI\_\-Group group, int n, int $\ast$ranks, MPI\_\-Group $\ast$newgroup)
\begin{CompactList}\small\item\em produces a group by reordering an existing group and taking only listed members \item\end{CompactList}\item 
int {\bf MPI\_\-Group\_\-excl} (MPI\_\-Group group, int n, int $\ast$ranks, MPI\_\-Group $\ast$newgroup)
\begin{CompactList}\small\item\em produces a group by reordering an existing group and taking only unlisted members \item\end{CompactList}\item 
int {\bf MPI\_\-Group\_\-range\_\-incl} (MPI\_\-Group group, int n, int ranks[$\,$][3], MPI\_\-Group $\ast$newgroup)\label{mpi_8h_a176}

\item 
int {\bf MPI\_\-Group\_\-range\_\-excl} (MPI\_\-Group group, int n, int ranks[$\,$][3], MPI\_\-Group $\ast$newgroup)\label{mpi_8h_a177}

\item 
int {\bf MPI\_\-Group\_\-free} (MPI\_\-Group $\ast$group)
\begin{CompactList}\small\item\em frees a group \item\end{CompactList}\item 
int {\bf MPI\_\-Comm\_\-size} (MPI\_\-Comm comm, int $\ast$size)
\begin{CompactList}\small\item\em Determines the size of the group associated with a communictor. \item\end{CompactList}\item 
int {\bf MPI\_\-Comm\_\-rank} (MPI\_\-Comm comm, int $\ast$rank)
\begin{CompactList}\small\item\em Determines the rank of the calling process in the communicator. \item\end{CompactList}\item 
int {\bf MPI\_\-Comm\_\-compare} (MPI\_\-Comm comm1, MPI\_\-Comm comm2, int $\ast$result)
\begin{CompactList}\small\item\em Compares two communicators. \item\end{CompactList}\item 
int {\bf MPI\_\-Comm\_\-dup} (MPI\_\-Comm comm, MPI\_\-Comm $\ast$newcomm)
\begin{CompactList}\small\item\em Duplicates an existing communicator with all its cached information. \item\end{CompactList}\item 
int {\bf MPI\_\-Comm\_\-create} (MPI\_\-Comm comm, MPI\_\-Group group, MPI\_\-Comm $\ast$newcomm)
\begin{CompactList}\small\item\em Creates a new communicator. \item\end{CompactList}\item 
int {\bf MPI\_\-Comm\_\-split} (MPI\_\-Comm comm, int color, int key, MPI\_\-Comm $\ast$newcomm)
\begin{CompactList}\small\item\em Creates new communicators based on colors and keys. \item\end{CompactList}\item 
int {\bf MPI\_\-Comm\_\-free} (MPI\_\-Comm $\ast$comm)
\begin{CompactList}\small\item\em Marks the communicator object for deallocation. \item\end{CompactList}\item 
int {\bf MPI\_\-Comm\_\-test\_\-inter} (MPI\_\-Comm comm, int $\ast$flag)
\begin{CompactList}\small\item\em Tests to see if a comm is an inter-communicator. \item\end{CompactList}\item 
int {\bf MPI\_\-Comm\_\-remote\_\-size} (MPI\_\-Comm comm, int $\ast$size)
\begin{CompactList}\small\item\em Determines the size of the remote group associated with an inter-communictor. \item\end{CompactList}\item 
int {\bf MPI\_\-Comm\_\-remote\_\-group} (MPI\_\-Comm comm, MPI\_\-Group $\ast$group)
\begin{CompactList}\small\item\em Accesses the remote group associated with the given inter-communicator. \item\end{CompactList}\item 
int {\bf MPI\_\-Intercomm\_\-create} (MPI\_\-Comm intercomm, int local\_\-leader, MPI\_\-Comm peer\_\-comm, int remote\_\-leader, int tag, MPI\_\-Comm $\ast$comm\_\-out)
\begin{CompactList}\small\item\em Creates an intercommuncator from two intracommunicators. \item\end{CompactList}\item 
int {\bf MPI\_\-Intercomm\_\-merge} (MPI\_\-Comm intercomm, int high, MPI\_\-Comm $\ast$comm\_\-out)
\begin{CompactList}\small\item\em Creates an intracommuncator from an intercommunicator. \item\end{CompactList}\item 
int {\bf MPI\_\-Keyval\_\-create} (MPI\_\-Copy\_\-function $\ast$copy\_\-fn, MPI\_\-Delete\_\-function $\ast$delete\_\-fn, int $\ast$keyval, void $\ast$extra\_\-state)
\begin{CompactList}\small\item\em Generates a new attribute key. \item\end{CompactList}\item 
int {\bf MPI\_\-Keyval\_\-free} (int $\ast$keyval)
\begin{CompactList}\small\item\em Frees attribute key for communicator cache attribute. \item\end{CompactList}\item 
int {\bf MPI\_\-Attr\_\-put} (MPI\_\-Comm comm, int keyval, void $\ast$attribute\_\-val)
\begin{CompactList}\small\item\em Stores attribute value associated with a key. \item\end{CompactList}\item 
int {\bf MPI\_\-Attr\_\-get} (MPI\_\-Comm comm, int keyval, void $\ast$attribute\_\-val, int $\ast$flag)
\begin{CompactList}\small\item\em Retrieves attribute value by key. \item\end{CompactList}\item 
int {\bf MPI\_\-Attr\_\-delete} (MPI\_\-Comm comm, int keyval)
\begin{CompactList}\small\item\em Deletes attribute value associated with a key. \item\end{CompactList}\item 
int {\bf MPI\_\-Topo\_\-test} (MPI\_\-Comm comm, int $\ast$status)\label{mpi_8h_a196}

\item 
int {\bf MPI\_\-Cart\_\-create} (MPI\_\-Comm comm\_\-old, int ndims, int $\ast$dims, int $\ast$periods, int reorder, MPI\_\-Comm $\ast$comm\_\-cart)\label{mpi_8h_a197}

\item 
int {\bf MPI\_\-Dims\_\-create} (int nnodes, int ndims, int $\ast$dims)\label{mpi_8h_a198}

\item 
int {\bf MPI\_\-Graph\_\-create} (MPI\_\-Comm comm\_\-old, int nnodes, int $\ast$index, int $\ast$edges, int reorder, MPI\_\-Comm $\ast$comm\_\-cart)\label{mpi_8h_a199}

\item 
int {\bf MPI\_\-Graphdims\_\-get} (MPI\_\-Comm comm, int $\ast$nnodes, int $\ast$nedges)\label{mpi_8h_a200}

\item 
int {\bf MPI\_\-Graph\_\-get} (MPI\_\-Comm comm, int maxindex, int maxedges, int $\ast$index, int $\ast$edges)\label{mpi_8h_a201}

\item 
int {\bf MPI\_\-Cartdim\_\-get} (MPI\_\-Comm comm, int $\ast$ndims)\label{mpi_8h_a202}

\item 
int {\bf MPI\_\-Cart\_\-get} (MPI\_\-Comm comm, int maxdims, int $\ast$dims, int $\ast$periods, int $\ast$coords)\label{mpi_8h_a203}

\item 
int {\bf MPI\_\-Cart\_\-rank} (MPI\_\-Comm comm, int $\ast$coords, int $\ast$rank)\label{mpi_8h_a204}

\item 
int {\bf MPI\_\-Cart\_\-coords} (MPI\_\-Comm comm, int rank, int maxdims, int $\ast$coords)\label{mpi_8h_a205}

\item 
int {\bf MPI\_\-Graph\_\-neighbors\_\-count} (MPI\_\-Comm comm, int rank, int $\ast$nneighbors)\label{mpi_8h_a206}

\item 
int {\bf MPI\_\-Graph\_\-neighbors} (MPI\_\-Comm comm, int rank, int maxneighbors, int $\ast$neighbors)\label{mpi_8h_a207}

\item 
int {\bf MPI\_\-Cart\_\-shift} (MPI\_\-Comm comm, int direction, int disp, int $\ast$rank\_\-source, int $\ast$rank\_\-dest)\label{mpi_8h_a208}

\item 
int {\bf MPI\_\-Cart\_\-sub} (MPI\_\-Comm comm, int $\ast$remain\_\-dims, MPI\_\-Comm $\ast$newcomm)\label{mpi_8h_a209}

\item 
int {\bf MPI\_\-Cart\_\-map} (MPI\_\-Comm comm, int ndims, int $\ast$dims, int $\ast$periods, int $\ast$newrank)\label{mpi_8h_a210}

\item 
int {\bf MPI\_\-Graph\_\-map} (MPI\_\-Comm comm, int nnodes, int $\ast$index, int $\ast$edges, int $\ast$newrank)\label{mpi_8h_a211}

\item 
int {\bf MPI\_\-Get\_\-processor\_\-name} (char $\ast$name, int $\ast$resultlen)
\begin{CompactList}\small\item\em get the name of the current host upon which this process is running on \item\end{CompactList}\item 
int {\bf MPI\_\-Errhandler\_\-create} (MPI\_\-Handler\_\-function $\ast$function, MPI\_\-Errhandler $\ast$errhandler)\label{mpi_8h_a213}

\item 
int {\bf MPI\_\-Errhandler\_\-set} (MPI\_\-Comm comm, MPI\_\-Errhandler errhandler)\label{mpi_8h_a214}

\item 
int {\bf MPI\_\-Errhandler\_\-get} (MPI\_\-Comm comm, MPI\_\-Errhandler $\ast$errhandler)\label{mpi_8h_a215}

\item 
int {\bf MPI\_\-Errhandler\_\-free} (MPI\_\-Errhandler $\ast$errhandler)\label{mpi_8h_a216}

\item 
int {\bf MPI\_\-Error\_\-string} (int errorcode, char $\ast$string, int $\ast$resultlen)\label{mpi_8h_a217}

\item 
int {\bf MPI\_\-Error\_\-class} (int errorcode, int $\ast$errorclass)\label{mpi_8h_a218}

\item 
double {\bf MPI\_\-Wtime} (void)
\begin{CompactList}\small\item\em Returns an elapsed time on the calling processor. \item\end{CompactList}\item 
double {\bf MPI\_\-Wtick} (void)
\begin{CompactList}\small\item\em MPI\_\-Wtick returns the resolution of MPI\_\-WTIME in seconds. \item\end{CompactList}\item 
int {\bf MPI\_\-Init} (int $\ast$argc, char $\ast$$\ast$$\ast$argv)
\begin{CompactList}\small\item\em Initialize the MPI execution environment. \item\end{CompactList}\item 
int {\bf MPI\_\-Finalize} (void)
\begin{CompactList}\small\item\em Terminates MPI execution environment. \item\end{CompactList}\item 
int {\bf MPI\_\-Initialized} (int $\ast$flag)
\begin{CompactList}\small\item\em Indicates whether MPI\_\-Init has been called. \item\end{CompactList}\item 
int {\bf MPI\_\-Abort} (MPI\_\-Comm comm, int errorcode)
\begin{CompactList}\small\item\em Terminates MPI execution environment. \item\end{CompactList}\item 
int {\bf MPI\_\-Get\_\-version} (int $\ast$version, int $\ast$subversion)
\begin{CompactList}\small\item\em get the current version of the implementation \item\end{CompactList}\item 
int {\bf MPI\_\-Pcontrol} (const int level,...)\label{mpi_8h_a226}

\end{CompactItemize}


\subsection{Detailed Description}
File which defines all of the MPI functions, constants and datatypes. 



\subsection{Function Documentation}
\index{mpi.h@{mpi.h}!MPI_Abort@{MPI\_\-Abort}}
\index{MPI_Abort@{MPI\_\-Abort}!mpi.h@{mpi.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int MPI\_\-Abort (MPI\_\-Comm {\em comm}, int {\em errorcode})}\label{mpi_8h_a224}


Terminates MPI execution environment. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em comm}]communicator of tasks to abort \item[{\em errorcode}]error code to return to invoking environment \end{description}
\end{Desc}
\index{mpi.h@{mpi.h}!MPI_Attr_delete@{MPI\_\-Attr\_\-delete}}
\index{MPI_Attr_delete@{MPI\_\-Attr\_\-delete}!mpi.h@{mpi.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int MPI\_\-Attr\_\-delete (MPI\_\-Comm {\em comm}, int {\em keyval})}\label{mpi_8h_a195}


Deletes attribute value associated with a key. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em comm}]communicator to which attribute is attached (handle) \item[{\em keyval}]The key value of the deleted attribute (integer) \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]status code \end{Desc}
\index{mpi.h@{mpi.h}!MPI_Attr_get@{MPI\_\-Attr\_\-get}}
\index{MPI_Attr_get@{MPI\_\-Attr\_\-get}!mpi.h@{mpi.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int MPI\_\-Attr\_\-get (MPI\_\-Comm {\em comm}, int {\em keyval}, void $\ast$ {\em attribute\_\-val}, int $\ast$ {\em flag})}\label{mpi_8h_a194}


Retrieves attribute value by key. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em comm}]communicator to which attribute will be attached (handle) \item[{\em keyval}]key value, as returned by MPI\_\-KEYVAL\_\-CREATE (integer) \item[{\em attribute\_\-val}]attribute value \item[{\em flag}]true if an attribute value was extracted; false if no attribute is associated with the key \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]status code \end{Desc}
\index{mpi.h@{mpi.h}!MPI_Attr_put@{MPI\_\-Attr\_\-put}}
\index{MPI_Attr_put@{MPI\_\-Attr\_\-put}!mpi.h@{mpi.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int MPI\_\-Attr\_\-put (MPI\_\-Comm {\em comm}, int {\em keyval}, void $\ast$ {\em attribute\_\-val})}\label{mpi_8h_a193}


Stores attribute value associated with a key. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em comm}]communicator to which attribute will be attached (handle) \item[{\em keyval}]key value, as returned by MPI\_\-KEYVAL\_\-CREATE (integer) \item[{\em attribute\_\-val}]attribute value \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]status code \end{Desc}
\index{mpi.h@{mpi.h}!MPI_Comm_compare@{MPI\_\-Comm\_\-compare}}
\index{MPI_Comm_compare@{MPI\_\-Comm\_\-compare}!mpi.h@{mpi.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int MPI\_\-Comm\_\-compare (MPI\_\-Comm {\em comm1}, MPI\_\-Comm {\em comm2}, int $\ast$ {\em results})}\label{mpi_8h_a181}


Compares two communicators. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em comm1}]communicator1 (handle) \item[{\em comm2}]communicator2 (handle) \item[{\em result}]integer which is MPI\_\-IDENT if the contexts and groups are the same, MPI\_\-CONGRUENT if different contexts but identical groups, MPI\_\-SIMILAR if different contexts but similar groups, and MPI\_\-UNEQUAL otherwise \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]status code \end{Desc}
\index{mpi.h@{mpi.h}!MPI_Comm_create@{MPI\_\-Comm\_\-create}}
\index{MPI_Comm_create@{MPI\_\-Comm\_\-create}!mpi.h@{mpi.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int MPI\_\-Comm\_\-create (MPI\_\-Comm {\em comm}, MPI\_\-Group {\em group}, MPI\_\-Comm $\ast$ {\em newcomm})}\label{mpi_8h_a183}


Creates a new communicator. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em comm}]communicator (handle) \item[{\em group}]group, which is a subset of the group of comm (handle) \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]status code \end{Desc}
\index{mpi.h@{mpi.h}!MPI_Comm_dup@{MPI\_\-Comm\_\-dup}}
\index{MPI_Comm_dup@{MPI\_\-Comm\_\-dup}!mpi.h@{mpi.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int MPI\_\-Comm\_\-dup (MPI\_\-Comm {\em comm}, MPI\_\-Comm $\ast$ {\em newcomm})}\label{mpi_8h_a182}


Duplicates an existing communicator with all its cached information. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em comm}]communicator (handle) \item[{\em newcomm}]A new communicator over the same group as comm but with a new context. (handle) \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]status code \end{Desc}
\index{mpi.h@{mpi.h}!MPI_Comm_free@{MPI\_\-Comm\_\-free}}
\index{MPI_Comm_free@{MPI\_\-Comm\_\-free}!mpi.h@{mpi.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int MPI\_\-Comm\_\-free (MPI\_\-Comm $\ast$ {\em comm})}\label{mpi_8h_a185}


Marks the communicator object for deallocation. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em comm}]communicator to be destroyed (handle) \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]status code \end{Desc}
\index{mpi.h@{mpi.h}!MPI_Comm_group@{MPI\_\-Comm\_\-group}}
\index{MPI_Comm_group@{MPI\_\-Comm\_\-group}!mpi.h@{mpi.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int MPI\_\-Comm\_\-group (MPI\_\-Comm {\em comm}, MPI\_\-Group $\ast$ {\em group})}\label{mpi_8h_a170}


Accesses the group associated with given communicator. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em comm}]Communicator  group in communicator (output) \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]status code \end{Desc}
\index{mpi.h@{mpi.h}!MPI_Comm_rank@{MPI\_\-Comm\_\-rank}}
\index{MPI_Comm_rank@{MPI\_\-Comm\_\-rank}!mpi.h@{mpi.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int MPI\_\-Comm\_\-rank (MPI\_\-Comm {\em comm}, int $\ast$ {\em rank})}\label{mpi_8h_a180}


Determines the rank of the calling process in the communicator. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em comm}]communicator (handle) \item[{\em rank}]of the calling process in group of comm (integer) \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]status code \end{Desc}
\index{mpi.h@{mpi.h}!MPI_Comm_remote_group@{MPI\_\-Comm\_\-remote\_\-group}}
\index{MPI_Comm_remote_group@{MPI\_\-Comm\_\-remote\_\-group}!mpi.h@{mpi.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int MPI\_\-Comm\_\-remote\_\-group (MPI\_\-Comm {\em comm}, MPI\_\-Group $\ast$ {\em group})}\label{mpi_8h_a188}


Accesses the remote group associated with the given inter-communicator. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em comm}]communicator (handle) \item[{\em group}]remote group of communicator \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]status code \end{Desc}
\index{mpi.h@{mpi.h}!MPI_Comm_remote_size@{MPI\_\-Comm\_\-remote\_\-size}}
\index{MPI_Comm_remote_size@{MPI\_\-Comm\_\-remote\_\-size}!mpi.h@{mpi.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int MPI\_\-Comm\_\-remote\_\-size (MPI\_\-Comm {\em comm}, int $\ast$ {\em size})}\label{mpi_8h_a187}


Determines the size of the remote group associated with an inter-communictor. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em comm}]communicator (handle) \item[{\em size}]number of processes in the group of comm (integer) \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]status code \end{Desc}
\index{mpi.h@{mpi.h}!MPI_Comm_size@{MPI\_\-Comm\_\-size}}
\index{MPI_Comm_size@{MPI\_\-Comm\_\-size}!mpi.h@{mpi.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int MPI\_\-Comm\_\-size (MPI\_\-Comm {\em comm}, int $\ast$ {\em size})}\label{mpi_8h_a179}


Determines the size of the group associated with a communictor. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em comm}]communicator (handle) \item[{\em size}]number of processes in the group of comm (integer) \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]status code \end{Desc}
\index{mpi.h@{mpi.h}!MPI_Comm_split@{MPI\_\-Comm\_\-split}}
\index{MPI_Comm_split@{MPI\_\-Comm\_\-split}!mpi.h@{mpi.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int MPI\_\-Comm\_\-split (MPI\_\-Comm {\em comm}, int {\em color}, int {\em key}, MPI\_\-Comm $\ast$ {\em newcomm})}\label{mpi_8h_a184}


Creates new communicators based on colors and keys. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em comm}]communicator (handle) \item[{\em color}]control of subset assignment (nonnegative integer). Processes with the same color are in the same new communicator \item[{\em key}]control of rank assigment (integer) \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]status code \end{Desc}
\index{mpi.h@{mpi.h}!MPI_Comm_test_inter@{MPI\_\-Comm\_\-test\_\-inter}}
\index{MPI_Comm_test_inter@{MPI\_\-Comm\_\-test\_\-inter}!mpi.h@{mpi.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int MPI\_\-Comm\_\-test\_\-inter (MPI\_\-Comm {\em comm}, int $\ast$ {\em flag})}\label{mpi_8h_a186}


Tests to see if a comm is an inter-communicator. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em comm}]communicator (handle) \item[{\em flag}]logical \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]status code \end{Desc}
\index{mpi.h@{mpi.h}!MPI_Finalize@{MPI\_\-Finalize}}
\index{MPI_Finalize@{MPI\_\-Finalize}!mpi.h@{mpi.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int MPI\_\-Finalize (void)}\label{mpi_8h_a222}


Terminates MPI execution environment. 

\begin{Desc}
\item[Returns:]status code \end{Desc}
\index{mpi.h@{mpi.h}!MPI_Get_processor_name@{MPI\_\-Get\_\-processor\_\-name}}
\index{MPI_Get_processor_name@{MPI\_\-Get\_\-processor\_\-name}!mpi.h@{mpi.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int MPI\_\-Get\_\-processor\_\-name (char $\ast$ {\em name}, int $\ast$ {\em resultlen})}\label{mpi_8h_a212}


get the name of the current host upon which this process is running on 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em name}]a character array for the hostname \item[{\em resulten}]the length of the hostname \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]currently only returns MPI\_\-SUCCESS \end{Desc}
\index{mpi.h@{mpi.h}!MPI_Get_version@{MPI\_\-Get\_\-version}}
\index{MPI_Get_version@{MPI\_\-Get\_\-version}!mpi.h@{mpi.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int MPI\_\-Get\_\-version (int $\ast$ {\em version}, int $\ast$ {\em subversion})}\label{mpi_8h_a225}


get the current version of the implementation 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em version}]an integer to hold the version \item[{\em subversion}]an integer to hold the subversion \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]currently only returns MPI\_\-SUCCESS \end{Desc}
\index{mpi.h@{mpi.h}!MPI_Group_compare@{MPI\_\-Group\_\-compare}}
\index{MPI_Group_compare@{MPI\_\-Group\_\-compare}!mpi.h@{mpi.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int MPI\_\-Group\_\-compare (MPI\_\-Group {\em group1}, MPI\_\-Group {\em group2}, int $\ast$ {\em result})}\label{mpi_8h_a169}


compare two groups 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em group1}]group1 (handle) \item[{\em group2}]group2 (handle) \item[{\em result}]integer which is MPI\_\-IDENT if the order and members of the two groups are the same, MPI\_\-SIMILAR if only the members are the same, and MPI\_\-UNEQUAL otherwise (output) \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]status parameters \end{Desc}
\index{mpi.h@{mpi.h}!MPI_Group_difference@{MPI\_\-Group\_\-difference}}
\index{MPI_Group_difference@{MPI\_\-Group\_\-difference}!mpi.h@{mpi.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int MPI\_\-Group\_\-difference (MPI\_\-Group {\em group1}, MPI\_\-Group {\em group2}, MPI\_\-Group $\ast$ {\em newgroup})}\label{mpi_8h_a173}


makes a group from the difference of two groups 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em group1}]first group (handle) \item[{\em group2}]second group (handle) \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]status code \end{Desc}
\index{mpi.h@{mpi.h}!MPI_Group_excl@{MPI\_\-Group\_\-excl}}
\index{MPI_Group_excl@{MPI\_\-Group\_\-excl}!mpi.h@{mpi.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int MPI\_\-Group\_\-excl (MPI\_\-Group {\em group}, int {\em n}, int $\ast$ {\em ranks}, MPI\_\-Group $\ast$ {\em newgroup})}\label{mpi_8h_a175}


produces a group by reordering an existing group and taking only unlisted members 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em group}]group (handle) \item[{\em n}]number of elements in array ranks (integer) \item[{\em ranks}]array of integer ranks in group not to appear in newgroup \item[{\em newgroup}]new group derived from above preserving the order defined by group \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]status code \end{Desc}
\index{mpi.h@{mpi.h}!MPI_Group_free@{MPI\_\-Group\_\-free}}
\index{MPI_Group_free@{MPI\_\-Group\_\-free}!mpi.h@{mpi.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int MPI\_\-Group\_\-free (MPI\_\-Group $\ast$ {\em group})}\label{mpi_8h_a178}


frees a group 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em group}]group (handle) \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]status code \end{Desc}
\index{mpi.h@{mpi.h}!MPI_Group_incl@{MPI\_\-Group\_\-incl}}
\index{MPI_Group_incl@{MPI\_\-Group\_\-incl}!mpi.h@{mpi.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int MPI\_\-Group\_\-incl (MPI\_\-Group {\em group}, int {\em n}, int $\ast$ {\em ranks}, MPI\_\-Group $\ast$ {\em newgroup})}\label{mpi_8h_a174}


produces a group by reordering an existing group and taking only listed members 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em group}]group (handle) \item[{\em n}]number of elements in array ranks (and size of newgroup) \item[{\em ranks}]ranks of processes in group to appear in newgroup \item[{\em newgroup}]new group derived from above, in the order defined by ranks \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]status code \end{Desc}
\index{mpi.h@{mpi.h}!MPI_Group_intersection@{MPI\_\-Group\_\-intersection}}
\index{MPI_Group_intersection@{MPI\_\-Group\_\-intersection}!mpi.h@{mpi.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int MPI\_\-Group\_\-intersection (MPI\_\-Group {\em group1}, MPI\_\-Group {\em group2}, MPI\_\-Group $\ast$ {\em newgroup})}\label{mpi_8h_a172}


Produces a group as the intersection of two existing groups. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em group1}]first group (handle) \item[{\em group2}]second group (handle) \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]status code \end{Desc}
\index{mpi.h@{mpi.h}!MPI_Group_rank@{MPI\_\-Group\_\-rank}}
\index{MPI_Group_rank@{MPI\_\-Group\_\-rank}!mpi.h@{mpi.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int MPI\_\-Group\_\-rank (MPI\_\-Group {\em group}, int $\ast$ {\em rank})}\label{mpi_8h_a167}


returns the rank of this process in the given group 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em group}]group handle \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]status parameter \end{Desc}
\index{mpi.h@{mpi.h}!MPI_Group_size@{MPI\_\-Group\_\-size}}
\index{MPI_Group_size@{MPI\_\-Group\_\-size}!mpi.h@{mpi.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int MPI\_\-Group\_\-size (MPI\_\-Group {\em group}, int $\ast$ {\em size})}\label{mpi_8h_a166}


returns the size of a group 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em group}]group(handle) output parameter \item[{\em size}]number of processes in the group (integer) \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]status value \end{Desc}
\index{mpi.h@{mpi.h}!MPI_Group_translate_ranks@{MPI\_\-Group\_\-translate\_\-ranks}}
\index{MPI_Group_translate_ranks@{MPI\_\-Group\_\-translate\_\-ranks}!mpi.h@{mpi.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int MPI\_\-Group\_\-translate\_\-ranks (MPI\_\-Group {\em group1}, int {\em n}, int $\ast$ {\em ranks1}, MPI\_\-Group {\em group2}, int $\ast$ {\em ranks2})}\label{mpi_8h_a168}


Translates the ranks of processes in one group to those in another group. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em group1}]group1(handle) \item[{\em n}]number of ranks in ranks1 and ranks2 arrays (integer) \item[{\em ranks1}]array of zero or more valid ranks in group1 \item[{\em group2}]group2 handle \item[{\em ranks2}]array of corresponding ranks in group2, MPI\_\-UNDEFINED when no correspondence exists \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]status code \end{Desc}
\index{mpi.h@{mpi.h}!MPI_Group_union@{MPI\_\-Group\_\-union}}
\index{MPI_Group_union@{MPI\_\-Group\_\-union}!mpi.h@{mpi.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int MPI\_\-Group\_\-union (MPI\_\-Group {\em group1}, MPI\_\-Group {\em group2}, MPI\_\-Group $\ast$ {\em newgroup})}\label{mpi_8h_a171}


Produces a group by combining two groups. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em group1}]first group (handle) \item[{\em group2}]second group (handle) \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]status code \end{Desc}
\index{mpi.h@{mpi.h}!MPI_Init@{MPI\_\-Init}}
\index{MPI_Init@{MPI\_\-Init}!mpi.h@{mpi.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int MPI\_\-Init (int $\ast$ {\em argc}, char $\ast$$\ast$$\ast$ {\em argv})}\label{mpi_8h_a221}


Initialize the MPI execution environment. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em argc}]pointer to the number of arguments \item[{\em argv}]pointer to the argument vector \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]error or success \end{Desc}
\index{mpi.h@{mpi.h}!MPI_Initialized@{MPI\_\-Initialized}}
\index{MPI_Initialized@{MPI\_\-Initialized}!mpi.h@{mpi.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int MPI\_\-Initialized (int $\ast$ {\em flag})}\label{mpi_8h_a223}


Indicates whether MPI\_\-Init has been called. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em flag}]pointer to the variable which will hold the status \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]currently returns only MPI\_\-SUCCESS \end{Desc}
\index{mpi.h@{mpi.h}!MPI_Intercomm_create@{MPI\_\-Intercomm\_\-create}}
\index{MPI_Intercomm_create@{MPI\_\-Intercomm\_\-create}!mpi.h@{mpi.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int MPI\_\-Intercomm\_\-create (MPI\_\-Comm {\em local\_\-comm}, int {\em local\_\-leader}, MPI\_\-Comm {\em peer\_\-comm}, int {\em remote\_\-leader}, int {\em tag}, MPI\_\-Comm $\ast$ {\em comm\_\-out})}\label{mpi_8h_a189}


Creates an intercommuncator from two intracommunicators. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em local\_\-comm}]Local (intra)communicator \item[{\em local\_\-leader}]Rank in local\_\-comm of leader (often 0) \item[{\em peer\_\-comm}]Remote communicator \item[{\em remote\_\-leader}]Rank in peer\_\-comm of remote leader (often 0) \item[{\em tag}]Message tag to use in constructing intercommunicator; if multiple MPI\_\-Intercomm\_\-creates are being made, they should use different tags (more precisely, ensure that the local and remote leaders are using different tags for each MPI\_\-intercomm\_\-create). \item[{\em comm\_\-out}]Created intercommunicator \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]status code \end{Desc}
\index{mpi.h@{mpi.h}!MPI_Intercomm_merge@{MPI\_\-Intercomm\_\-merge}}
\index{MPI_Intercomm_merge@{MPI\_\-Intercomm\_\-merge}!mpi.h@{mpi.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int MPI\_\-Intercomm\_\-merge (MPI\_\-Comm {\em intercomm}, int {\em high}, MPI\_\-Comm $\ast$ {\em comm\_\-out})}\label{mpi_8h_a190}


Creates an intracommuncator from an intercommunicator. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em comm}]Intercommunicator \item[{\em high}]Used to order the groups of the two intracommunicators within comm when creating the new communicator. \item[{\em comm\_\-out}]Created intracommunicator \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]status code \end{Desc}
\index{mpi.h@{mpi.h}!MPI_Keyval_create@{MPI\_\-Keyval\_\-create}}
\index{MPI_Keyval_create@{MPI\_\-Keyval\_\-create}!mpi.h@{mpi.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int MPI\_\-Keyval\_\-create (MPI\_\-Copy\_\-function $\ast$ {\em copy\_\-fn}, MPI\_\-Delete\_\-function $\ast$ {\em delete\_\-fn}, int $\ast$ {\em keyval}, void $\ast$ {\em extra\_\-state})}\label{mpi_8h_a191}


Generates a new attribute key. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em copy\_\-fn}]Copy callback function for keyval \item[{\em delete\_\-fn}]Delete callback function for keyval \item[{\em keyval}]key value for future access (integer) \item[{\em extra\_\-state}]Extra state for callback functions \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]status code \end{Desc}
\index{mpi.h@{mpi.h}!MPI_Keyval_free@{MPI\_\-Keyval\_\-free}}
\index{MPI_Keyval_free@{MPI\_\-Keyval\_\-free}!mpi.h@{mpi.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int MPI\_\-Keyval\_\-free (int $\ast$ {\em keyval})}\label{mpi_8h_a192}


Frees attribute key for communicator cache attribute. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em keyval}]key value for future access (integer) \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]status code \end{Desc}
\index{mpi.h@{mpi.h}!MPI_Wtick@{MPI\_\-Wtick}}
\index{MPI_Wtick@{MPI\_\-Wtick}!mpi.h@{mpi.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}double MPI\_\-Wtick (void)}\label{mpi_8h_a220}


MPI\_\-Wtick returns the resolution of MPI\_\-WTIME in seconds. 

\begin{Desc}
\item[Returns:]MPI\_\-WTICK returns the resolution of MPI\_\-WTIME in seconds. That is, it returns, as a double precision value, the number of seconds between successive clock ticks. For example, if the clock is implemented by the hardware as a counter that is incremented every millisecond, the value returned by MPI\_\-WTICK should be . \end{Desc}
\index{mpi.h@{mpi.h}!MPI_Wtime@{MPI\_\-Wtime}}
\index{MPI_Wtime@{MPI\_\-Wtime}!mpi.h@{mpi.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}double MPI\_\-Wtime (void)}\label{mpi_8h_a219}


Returns an elapsed time on the calling processor. 

\begin{Desc}
\item[Returns:]Time in seconds since an arbitrary time in the past. \end{Desc}
